package basicas;

import java.util.*;

public abstract class Pessoa {
	
	private int id;
	
	private String nome;
	
	private String cpf;
	
	private String rg;
	
	private Date nasc;
	
	private Endereco endereco;
	
	private List<Telefone> telefones;
	
	public Pessoa(){}
	
	public Pessoa(int id, String nome, String cpf, String rg, Date nasc, Endereco endereco){
		this.setId(id);
		this.setNome(nome);
		this.setCpf(cpf);
		this.setRg(rg);
		this.setNasc(nasc);
		this.setEndereco(endereco);
	}
	
	public Pessoa(String nome, String cpf, String rg, Date nasc, Endereco endereco){
		this.setNome(nome);
		this.setCpf(cpf);
		this.setRg(rg);
		this.setNasc(nasc);
		this.setEndereco(endereco);
	}
	
	public Pessoa(String nome, String cpf, String rg, Date nasc){
		this.setNome(nome);
		this.setCpf(cpf);
		this.setRg(rg);
		this.setNasc(nasc);
	}

	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cpf == null) ? 0 : cpf.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pessoa other = (Pessoa) obj;
		if (cpf == null) {
			if (other.cpf != null)
				return false;
		} else if (!cpf.equals(other.cpf))
			return false;
		return true;
	}
	
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public Date getNasc() {
		return nasc;
	}

	public void setNasc(Date nasc) {
		this.nasc = nasc;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public List<Telefone> getTelefones() {
		return telefones;
	}

	public void setTelefones(List<Telefone> telefones) {
		this.telefones = telefones;
	}


	
	

}
